home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / tcp_ip / map / modify.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-12  |  1.1 KB  |  60 lines

  1. /*
  2.  *    modify.c
  3.  *
  4.  *    Changes map database from text to binary.
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.  
  10. main(argc, argv)
  11. int    argc;
  12. char    *argv[];
  13. {
  14.     FILE    *fpi, *fpo;
  15.     int    lat_deg, lat_min, lon_deg, lon_min, lat, lon, code;
  16.     char    type[80];
  17.  
  18.     if (argc != 3)  {
  19.         printf("Usage: modify input.asc output.pnt\n");
  20.         exit(1);
  21.     }
  22.  
  23.     if ((fpi = fopen(argv[1], "r")) == (FILE *)NULL)  {
  24.            printf("\007Error: Can't locate Database '%s'\n", argv[1]);
  25.            exit(1);
  26.     }
  27.  
  28.     if ((fpo = fopen(argv[2], "wb")) == (FILE *)NULL)  {
  29.            printf("\007Error: Can't create Database '%s'\n", argv[2]);
  30.            exit(1);
  31.     }
  32.  
  33.     for (;;)  {
  34.         if (fgets(type, sizeof type, fpi) == NULL)
  35.             break;
  36.  
  37.         /*
  38.          *    Skip comments and blank lines
  39.          */
  40.  
  41.         if ((type[0] == '#') || (type[0] == '\0'))
  42.             continue;
  43.  
  44.         sscanf(type, "%d, %d.%d, %d.%d\n",
  45.                      &code, &lat_deg, &lat_min, &lon_deg, &lon_min);
  46.  
  47.         lat = (lat_deg * 60) + lat_min;
  48.         lon = (lon_deg * 60) + lon_min;
  49.  
  50.         fwrite(&code, sizeof(int), 1, fpo);
  51.         fwrite(&lat, sizeof(int), 1, fpo);
  52.         fwrite(&lon, sizeof(int), 1, fpo);
  53.     }
  54.  
  55.     fclose(fpi);
  56.     fclose(fpo);
  57.  
  58.     exit(0);
  59. }
  60.